package cn.tedu.elasticsearch.repository;

import cn.tedu.elasticsearch.pojo.Item;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface ItemRepository extends ElasticsearchRepository<Item,Long> {
    //继承ElasticsearchRepository<[实体类类型],[主键类型]>
    //现在就可以使用SpringDataElasticSearch自动提供的增删改查方法了
    //自定义查询--单条件查询
    //SELECT * FROM item WHERE title LIKE "%鼠标%"
    /**
     * query(查询)：类似SQL语句中的select
     * Item/Items:查询返回结果的类型 ，加上s是负数
     * By(通过)：开始设置条件，相当于SQL中的where
     * Title：要匹配的条件
     * Matches(匹配)：开始匹配，相当于SQL中的like
     */
    List<Item> queryItemsByTitleMatches(String title);
    //自定义多条件查询
    List<Item> queryItemsByTitleMatchesOrBrandMatches(String title,String brand);
    //自定义排序查询
    List<Item> queryItemsByTitleMatchesOrBrandMatchesOrderByPriceDesc(String title,String brand);
    //自定义分页查询
    Page<Item> queryItemsByTitleMatchesOrBrandMatches(String title, String brand, Pageable pageable);
}
